﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Demos.DesignPatterns._13_代理模式
{
    public class DatabaseCartService:ICartService
    {
        public ShopCartObject GetCart(string userId)
        {
            Console.WriteLine($"[数据库] 获取用户 {userId} 的购物车");
            // 模拟数据库查询延迟
            System.Threading.Thread.Sleep(300);
            return new ShopCartObject { UserId = userId };
        }

        public void SaveCart(ShopCartObject cart)
        {
            Console.WriteLine($"[数据库] 保存用户 {cart.UserId} 的购物车（{cart.Items.Count}件商品）");
            // 模拟数据库写入延迟
            System.Threading.Thread.Sleep(500);
        }

        public void AddToCart(string userId, ShopCartItem item)
        {
            var cart = GetCart(userId);
            cart.AddItem(item);
            SaveCart(cart);
        }

        public void ClearCart(string userId)
        {
            Console.WriteLine($"[数据库] 清空用户 {userId} 的购物车");
            // 模拟数据库操作
            System.Threading.Thread.Sleep(200);
        }

    }
}
